package com.triones.ljr.service;

import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.page.TableDataInfo;
import com.triones.ljr.entity.dto.HandleAppDO;
import com.triones.ljr.entity.dto.HandleCategorizeDO;
import com.triones.ljr.entity.vo.CustomHandleAppVO;
import com.triones.ljr.entity.vo.HandleAppVO;
import com.triones.ljr.entity.vo.HandleCategorizeVO;

import java.util.List;

/**
 * 办理应用
 */
public interface HandleAppService {

    /**
     * 分类-查询列表（分页）
     * @param dto
     * @return
     */
    TableDataInfo<HandleCategorizeVO> categorizePageList(HandleCategorizeDO dto,PageQuery pageQuery);

    /**
     * 分类-查询详情
     * @param id
     * @return
     */
    HandleCategorizeVO getCategorizeInfo(Long id);

    /**
     * 分类-检查唯一性
     * @param dto
     * @return
     */
    boolean checkCategorizeUnique(HandleCategorizeDO dto);

    /**
     * 分类-新增
     * @param dto
     */
    boolean addCategorize(HandleCategorizeDO dto);

    /**
     * 分类-修改
     * @param dto
     * @return
     */
    boolean editCategorize(HandleCategorizeDO dto);

    /**
     * 分类-删除
     * @param id
     * @return
     */
    boolean removeCategorize(Long id);

    /**
     * 分类-禁用/启用
     * @param dto
     * @return
     */
    boolean categorizeChangeStatus(HandleCategorizeDO dto);

    /**
     * 分类-查询所有
     * @return
     */
    List<HandleCategorizeVO> selectCategorizeAll(String keyword);

    /**
     * 查询列表（分页）
     * @param dto
     * @param pageQuery
     * @return
     */
    TableDataInfo<CustomHandleAppVO> pageList(HandleAppDO dto, PageQuery pageQuery);

    /**
     * 查询详情
     * @param id
     * @return
     */
    CustomHandleAppVO getInfo(Long id);

    /**
     * 检查唯一性
     * @param dto
     * @return
     */
    boolean checkNameUnique(HandleAppDO dto);

    /**
     * 新增
     * @param dto
     * @return
     */
    boolean add(HandleAppDO dto);

    /**
     * 修改
     * @param dto
     * @return
     */
    boolean edit(HandleAppDO dto);

    /**
     * 删除
     * @param id
     * @return
     */
    boolean remove(Long id);

    /**
     * 搜索-查询办事列表
     * @param keyword
     * @return
     */
    List<HandleAppVO> queryList(String keyword);
}
